_q Pointer to the queue to which the message is to be sent.
_t_y_p_e Message type (must be a control type).
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
_pppp_uuuu_tttt_cccc_tttt_llll tests the _t_y_p_e argument to make sure a data type has not been
specified, and then attempts to allocate a message block. _pppp_uuuu_tttt_cccc_tttt_llll fails
if _t_y_p_e is _MMMM______DDDD_AAAA_TTTT_AAAA, _MMMM______PPPP_RRRR_OOOO_TTTT_OOOO, or _MMMM______PPPP_CCCC_PPPP_RRRR_OOOO_TTTT_OOOO, or if a message block cannot be
allocated. If successful, _pppp_uuuu_tttt_cccc_tttt_llll calls the _pppp_uuuu_tttt(D2) routine of the queue
pointed to by _q, passing it the allocated message.
RRRReeeettttuuuurrrrnnnn VVVVaaaalllluuuueeeessss
On success, 1 is returned. Otherwise, if _t_y_p_e is a data type, or if a
Driver-defined basic locks, read/write locks, and sleep locks may not be
held across calls to this function.
EEEExxxxaaaammmmpppplllleeeessss
The _ssss_eeee_nnnn_dddd______cccc_tttt_llll routine is used to pass control messages downstream.
_MMMM______BBBB_RRRR_EEEE_AAAA_KKKK messages are handled with _pppp_uuuu_tttt_cccc_tttt_llll (line 9). _pppp_uuuu_tttt_cccc_tttt_llll_1111 (line 11) is
used for _MMMM______DDDD_EEEE_LLLL_AAAA_YYYY messages, so that _p_a_r_a_m can be used to specify the
length of the delay. If an invalid message type is detected, _ssss_eeee_nnnn_dddd______cccc_tttt_llll